package com.dao;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

import com.beans.Prospects;
import com.beans.Sorties;
import com.beans.Users;
import com.utils.HibernateUtils;

public class SortiesDao {

	public SortiesDao() {
		super();
	}

	public void addSorties(Sorties sortie) {

		Session session = HibernateUtils.currentSession();

		Transaction tx = session.beginTransaction();

		session.save(sortie);

		tx.commit();
		HibernateUtils.closeSession();

	}

	public Sorties findSorties(String referenceSorties) {

		Session session = HibernateUtils.currentSession();

		Query query = session.createQuery("from Sorties where sortRef='"
				+ referenceSorties + "'");
		List<Sorties> listSorties = query.list();

		HibernateUtils.closeSession();

		return listSorties.get(0);

	}

	// methode permettant de faire la mise à jour d'une sortie
	public boolean updateSortie(Sorties sorties) {
		boolean updated = false;
		Transaction tx = null;
		try {
			Session session = HibernateUtils.currentSession();// ouverture d'une
			// session

			tx = session.beginTransaction();// on ouvre une transaction

			session.update(sorties);
			updated = true;

		} catch (Exception e) {
			System.out.println("error lors de la modification de la sortie "
					+ e.getLocalizedMessage());
		} finally {
			tx.commit();
			HibernateUtils.closeSession();
		}

		return updated;

	}

	// méthode pour la suppression d'une sortie
	public boolean deleteSorties(Sorties sorties) {
		boolean deleted = false;
		Transaction tx = null;
		try {
			Session session = HibernateUtils.currentSession();// ouverture d'une
			// session

			tx = session.beginTransaction();// on ouvre une transaction

			session.delete(sorties);
			deleted = true;

		} catch (Exception e) {
			System.out.println("error lors de la suppression de la sortie "
					+ e.getLocalizedMessage());
		} finally {
			tx.commit();
			HibernateUtils.closeSession();
		}

		return deleted;
	}

	// methode permettant de lister l'ensemble des sorties
	public List<Sorties> selectAllSorties() {

		Session session = HibernateUtils.currentSession();
		Query query = session.createQuery("from Sorties");
		List<Sorties> listSortie = query.list();
		for (int i = 0; i < listSortie.size(); i++) {
			Sorties sorties = new Sorties();
			sorties = listSortie.get(i);

		}
		return listSortie;
	}

}
